package com.youzan.open.sdk.gen.v3_0_0.model;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import com.youzan.open.sdk.model.APIParams;
import com.youzan.open.sdk.model.ByteWrapper;
import com.youzan.open.sdk.model.FileParams;
import java.util.List;
import java.util.Map;
import java.util.Date;

public class YouzanRetailStockUpdateParams implements APIParams, FileParams  {

    /**
     * 来源
     */
    private String source;
    /**
     * 库存增/减（1,"增加"；2,"减少"）
     */
    private Long operateType;
    /**
     * 变更明细
     */
    private String items;
    /**
     * 幂等单号
     */
    private String idempotentNo;
    /**
     * 业务类型（  1： "库存盘点单",2："采购入库单",3： "退货入库单",4： "出库单"）
     */
    private Long businessOrderType;
    /**
     * 业务单号
     */
    private String bizBillNo;

    public void setSource(String source) {
        this.source = source;
    }

    public String getSource() {
        return this.source;
    }

    public void setOperateType(Long operateType) {
        this.operateType = operateType;
    }

    public Long getOperateType() {
        return this.operateType;
    }

    public void setItems(String items) {
        this.items = items;
    }

    public String getItems() {
        return this.items;
    }

    public void setIdempotentNo(String idempotentNo) {
        this.idempotentNo = idempotentNo;
    }

    public String getIdempotentNo() {
        return this.idempotentNo;
    }

    public void setBusinessOrderType(Long businessOrderType) {
        this.businessOrderType = businessOrderType;
    }

    public Long getBusinessOrderType() {
        return this.businessOrderType;
    }

    public void setBizBillNo(String bizBillNo) {
        this.bizBillNo = bizBillNo;
    }

    public String getBizBillNo() {
        return this.bizBillNo;
    }


    public Map<String, Object> toParams() {
        Map<String, Object> params = Maps.newHashMap();
        if (source != null) {
            params.put("source", source);
        }
        if (operateType != null) {
            params.put("operate_type", operateType);
        }
        if (items != null) {
            params.put("items", items);
        }
        if (idempotentNo != null) {
            params.put("idempotent_no", idempotentNo);
        }
        if (businessOrderType != null) {
            params.put("business_order_type", businessOrderType);
        }
        if (bizBillNo != null) {
            params.put("biz_bill_no", bizBillNo);
        }
        return params;
    }

    public Multimap<String, ByteWrapper> toFileParams() {
        Multimap<String, ByteWrapper> params = ArrayListMultimap.create();

            return params;
    }


}